class Foo:
    __version = "v1.0"  # 【私有属性】解析器自动转化成了带 `_类名` 前缀的公有属性

    def __init__(self, password):
        self.__password = password

    @classmethod
    def version(cls):
        return cls.__version  # 内部可以直接访问

    def __hide(self):
        return "被你发现了，密码是：{}".format(self.__password)

    @classmethod
    def __update_version(cls):
        cls.__version = "v1.1"


# print(Foo.__version) # 外部无法直接访问
print(Foo._Foo__version)  # 外部可以通过加上 `_类名` 前缀来访问私有属性

f = Foo("yesen@!")
# print(f.__password)
print(f._Foo__password)
# print(f.__hide())
print(f._Foo__hide())

f._Foo__update_version()
print(Foo.version())
